Radio Frequency IDentification (RFID) systems typically include RFID tags and RFID readers (the latter are also known as RFID reader/writers or RFID interrogators). RFID systems can be used in many ways for locating and identifying objects to which the tags are attached. RFID systems are particularly useful in product-related and service-related industries for tracking large numbers of objects being processed, inventoried, or handled. In such cases, an RFID tag is usually attached to an individual item, or to its package.
In principle, RFID techniques entail using an RFID reader to interrogate one or more RFID tags. The reader transmitting a Radio Frequency (RF) wave performs the interrogation. A tag that senses the interrogating RF wave responds by transmitting back another RF wave. The tag generates the transmitted back RF wave either originally, or by reflecting back a portion of the interrogating RF wave in a process known as backscatter. Backscatter may take place in a number of ways.
The reflected-back RF wave may further encode data stored internally in the tag, such as a number. The response is demodulated and decoded by the reader, which thereby identifies, counts, or otherwise interacts with the associated item. The decoded data can denote a serial number, a price, a date, a destination, other attribute(s), any combination of attributes, and so on.
An RFID tag typically includes an antenna system, a power management section, a radio section, and frequently a logical section, a memory, or both. In earlier RFID tags, the power management section included an energy storage device, such as a battery. RFID tags with an energy storage device are known as active tags. Advances in semiconductor technology have miniaturized the electronics so much that an RFID tag can be powered solely by the RF signal it receives. Such RFID tags do not include an energy storage device, and are called passive tags.
When reading RFID tags, a wireless wave is backscattered from the RFID tag. The tag transmits its code, such as an Electronic Product Code (EPC), by encoding data in the backscattered waveform.
In both types of transmissions, i.e. forward link of reader to tag and reverse link of tag backscatter, each waveform can be thought of as a group of ordered waveform segments that, for example, take values between a High (H) and a Low (L). In the forward link, the H is usually the waveform at its full amplitude, to be transmitting the maximum power to the tag, so that it can be powered maximally. The L is the amplitude at a value less than the maximum, which is called the “modulation depth.” The modulation depth is an intermediate value; it should be deep enough for an L to be easily distinguishable from an H, but as long as it is not a real zero (100% modulation depth), it can continue powering the tag.
The wireless wave is received by an antenna of the reader to become a signal of the antenna. A demodulator extracts from the signal a waveform, made by waveform segments. These waveform segments are, ideally, received by the reader in the same way as the tag encoded them. Then they are decoded, to determine what the tag transmitted, namely its code.
For purposes of decoding, the waveform segments may be processed as analog signals. Or they may become numerical waveform values. Preferably, an Analog to Digital Converter (ADC) converts the electrical signal of each segment into one or more sampled digital values. If more than one value is provided, then the segment is considered divided into subsegments, and statistics can be used to extract a general value for each waveform segment, etc. These waveform values are compared to a threshold, to determine as to whether a waveform segment is an H or a L.
A problem is errors. Ideally, the reader system should receive exactly what the tag transmitted. But in reality, the wave received by the reader system could be distorted from the wave that is transmitted by the reader tag for various reasons (e.g. interference in the environment, such as from other readers, etc.).
For purposes of the present description, what is received from the tag is called a “version” of the tag code. “Version” is a general word, applying equally to either the received waveform, or its segments, or their values, or the tag code encoded in the segments and/or values, etc. The term “version” is used because, strictly speaking, while the tag is deemed to transmit its code exactly, what the reader receives could be different as per the above.
It is known that conventional reader systems detect that there is an error by adding a Cyclic Redundancy Check (CRC) to the version of the tag code that is being transmitted. The CRC is received along with the code, and an analysis informs whether there is an error in the overall transmission. If no error is detected, the received code version is deemed correct. If, however, an error is detected, the CRC does not inform which bit was wrong.
Accordingly, the only available prior art solution has been to discard what has been received, and start over, by asking for another version of the code, checking again, and so on. When a version is received for which the CRC does not inform that there is an error, that version is treated as the right one over all the others.
Receiving repeated versions takes more time, which slows down the throughput of an RFID reader system. Moreover, in the presence of heavy interference, more repetitions will be statistically needed, until an error free one arrives. Beyond some point, the system may even abandon the effort and start over.